Simulating the electrical operating characteristics of an electrical circuit design has proven useful in the development of electrical systems and products. Design issues identified by circuit simulation can be corrected prior to the production of actual working prototypes (e.g., breadboard or integrated circuit (IC) implementations), greatly reducing redesign cycle time and costs and, thereby, leading to shortened product development cycles.
Electrical circuit simulation is typically a computation-intensive task, generally requiring the use of a computer having significant processing power and memory resources. To simulate an electrical circuit design, the design is logically constituted in computer memory from stored circuit data according to programmed instructions. Behavioral characteristics of the simulated design are the result of, among other things, the components used in the design, the arrangement of their interconnections, their operating characteristics, and their logic state specifications. A designer evaluates the operation of the electrical circuit design by observing its characteristic response in simulation. The simulated response is obtained by observing signal or waveform characteristics present at particular nodes of the circuit (e.g., test points) or at particular points in the simulation program (e.g. simulation test points or breakpoints). A simulator is said to “solve” for a particular portion of a simulated circuit, also referred to as a circuit block, by calculating the output signal characteristics produced by that circuit block in response to one or more particular input signals.
The design of electrical systems that include both analog and digital circuits or circuit blocks, known as mixed analog/digital systems, is particularly complex. A designer of this class of electrical systems is confronted not only by the design issues present for analog and digital systems individually, but is also faced with issues that arise from the inclusion of both analog and digital circuits in the same system. Mixed analog/digital system design issues are especially prevalent when the mixed design is to be implemented using a single component such as a single IC device (for example, electromagnetic coupling of high frequency switching transients from digital devices to analog circuitry).
In digital logic simulation, logic signals can take the values of 0, 1, X, and Z. The meanings of 0 and 1 comport with the standard definition of a Boolean value (i.e., a binary digit). However, a signal can also take the value “X” if the logic is such that the signal state is unknown or immaterial to the logic specification; i.e., the signal value is either 0 or 1, but the simulator cannot determine which state is present.
The value “Z,” however, does not represent a state of either 0 or 1. The value “Z” is not a signal value per se; rather, “Z” represents the state of a signal not being driven or floating. When not actively driving a signal, an electronic device, such as a logic gate or other digital circuit, may present a high-impedance state, or “Z” state, at its output. This high-impedance state is useful for electrically isolating the digital circuit from the effects of other electrical signals connected to its output when that circuit or device is not driving a signal. The truth table logic specification for a digital gate frequently includes entries corresponding to values of “X” and “Z” as well as 0 and 1.
Difficulty may be experienced, however, in attempting to simulate the effect of a Z-value output on a network node and the circuit components or blocks relying upon the network node as a potential input. Because a Z-value represents high impedance or effective isolation of the digital circuit block that normally acts as a driver of the signal at the node, the node signal characteristics may remain undefined. This causes a problem for circuit components or blocks that rely upon the node as an input, and may lead to inaccurate simulation results.
Accordingly, it would be advantageous to provide a simulation system and method which is capable of handling Z-value outputs which connect to other circuit components or blocks, particularly in the context of mixed digital and analog circuit designs.